import * as Color from "../../lib.xjs/constant/Color";

export class GaquUtil{

    /** 按照退款状态码获取退款状态 */
    static getRefund(statusCode : number) : string {
        switch (statusCode) {
            case 0:{
                return "待退款";
            }
        }
    }

    /**
     *获取时间差值（分钟）
     */
    static getTimeDifference(date1, date2): number{
        // 转换时间
        let regEx = new RegExp("\\-","gi");

        let validDateStr1 = date1.replace(regEx,"/");
        let milliseconds1 = Date.parse(validDateStr1);

        let validDateStr2 = date2.replace(regEx,"/");
        let milliseconds2 = Date.parse(validDateStr2);

        let time1 = new Date(milliseconds1);
        let time2 = new Date(milliseconds2);
        // 差值
        let timeDiff = Math.abs(time1 - time2);
        let timeDiff1 = Math.abs(time1 - time2);

        // 分钟
        return Math.floor(timeDiff / (1000 * 60));
    }

    /**
     *获取时间差值（天）
     */
    static getDayDifference(dateStr1, dateStr2) : number{
        //转换时间
        let regEx = new RegExp("\\-","gi");

        let validDateStr1 = dateStr1.replace(regEx,"/");
        let milliseconds1 = Date.parse(validDateStr1);
        let date1 = new Date(milliseconds1);

        let validDateStr2 = dateStr2.replace(regEx,"/");
        let milliseconds2 = Date.parse(validDateStr2);
        let date2 = new Date(milliseconds2);

        let day1 = date1.getDate();
        let day2 = date2.getDate();

        let month1 = date1.getMonth();
        let month2 = date2.getMonth();
        if(month1 !== month2) return 100;

        return Math.abs(day1 - day2);   //天
    }

    /** 按照舱体状态码获取中文状态 */
    static getCabinStatusName(statusCode : number) : string {
        switch (statusCode) {
            case -1:{
                return "弃用";
            }
            case 0:{
                return "尚未启用";
            }
            case 1:{
                return "空闲";
            }
            case 2:{
                return "使用中";
            }
            case 3:{
                return "维护中";
            }
        }
    }

    /** 按照舱体状态码获取文字颜色 */
    static getCabinStatusColor(statusCode : number) : string {
        switch (statusCode) {
            case -1:{   // 弃用
                return Color.darkGray;
            }
            case 0:{    // 尚未启用
                return Color.orange;
            }
            case 1:{    // 可用
                return Color.colorPrimary;
            }
            case 2:{    // 正在使用
                return Color.red;
            }
            case 3:{    // 维护中
                return Color.gray;
            }
        }
    }

    /** 按照用户状态码获取中文状态 */
    static getPersonStatusName(statusCode : number) : string {
        switch (statusCode) {
            case -1:{   // 退款中
                return "退款中";
            }
            case 0:{
                return "未实名";
            }
            case 1:{
                return "未交押金";
            }
            case 2:{
                return "正常";
            }
            case 3:{
                return "冻结";
            }
        }
    }

    /** 按照用户状态码获取文字颜色 */
    static getPersonStatusColor(statusCode : number) : string {
        switch (statusCode) {
            case -1:{   // 退款中
                return Color.red;
            }
            case 0:{    // 未实名
                return Color.gray;
            }
            case 1:{    // 未交押金
                return Color.orange;
            }
            case 2:{    // 正常
                return Color.colorPrimaryLight;
            }
            case 3:{    // 冻结
                return Color.darkGray;
            }
        }
    }

    /** 按照订单状态码获取中文状态 */
    static getOrderStatusName(statusCode : number) : string {
        switch (statusCode) {
            case 1:{
                return "已支付";
            }
            case 0:{
                return "待支付";
            }
            case -1:{
                return "已撤销";
            }
        }
    }

    /** 按照订单状态码获取文字颜色 */
    static getOrderStatusColor(statusCode : number) : string {
        switch (statusCode) {
            case 1:{    // 已支付
                return Color.colorPrimaryLight;
            }
            case 0:{    // 待支付
                return Color.orange;
            }
            case -1:{   // 已撤销
                return Color.darkGray;
            }
        }
    }

    /** 按照传入的日期字符串算出"今天","昨天","前天" */
    static getDiffDayByDate(dayCount: number) : string {
        switch (dayCount) {
            case 0:{
                return "今天"
            }
            case 1:{
                return "昨天"
            }
            case 2:{
                return "前天"
            }
            default:{
                return "";
            }
        }
    }

    /** 按照传入的日期字符串算出"今天","昨天","前天"的颜色值 */
    static getDiffDayColorByDate(dayDiff: number) : string {
        switch (dayDiff) {
            case 0:{
                return Color.green;
            }
            case 1:{
                return Color.orange;
            }
            case 2:{
                return Color.colorPrimaryLight;
            }
            default:{
                return Color.gray;
            }
        }
    }
}
